spin button: Limit the entry width to reasonable values
authorMatthias Clasen <mclasen@redhat.com>
Sun, 6 Mar 2016 04:41:10 +0000 (23:41 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 6 Mar 2016 04:45:35 +0000 (23:45 -0500)
When opening the value editor for any GtkAdjustment properties
in the inspector, the popover stretches out for miles, since
it reserves enough space to draw MAXDOUBLE. This is not useful.
Limit the space we reserve to 8 digits.

gtk/gtkspinbutton.c

index f24a98f56a851436a4a52b4912cec55ff8a85c43..0219575501d6f98754e8af5e2f96c6aa14abf916 100644 (file)
@@ -1132,20 +1132,21 @@ gtk_spin_button_get_text_width (GtkSpinButton *spin_button)
   gint width, w;
   PangoLayout *layout;
   gchar *str;
+  gdouble value;
 
   layout = pango_layout_copy (gtk_entry_get_layout (GTK_ENTRY (spin_button)));
 
   /* Get max of MIN_SPIN_BUTTON_WIDTH, size of upper, size of lower */
   width = MIN_SPIN_BUTTON_WIDTH;
 
-  str = gtk_spin_button_format_for_value (spin_button,
-                                          gtk_adjustment_get_upper (priv->adjustment));
+  value = CLAMP (gtk_adjustment_get_upper (priv->adjustment), -1e7, 1e7);
+  str = gtk_spin_button_format_for_value (spin_button, value);
   w = measure_string_width (layout, str);
   width = MAX (width, w);
   g_free (str);
 
-  str = gtk_spin_button_format_for_value (spin_button,
-                                          gtk_adjustment_get_lower (priv->adjustment));
+  value = CLAMP (gtk_adjustment_get_lower (priv->adjustment), -1e7, 1e7);
+  str = gtk_spin_button_format_for_value (spin_button, value);
   w = measure_string_width (layout, str);
   width = MAX (width, w);
   g_free (str);